package com.example.warehouse.sys.service;

import com.example.warehouse.common.pojo.vo.PageData;
import com.example.warehouse.sys.pojo.entity.SysRole;
import com.example.warehouse.sys.pojo.entity.SysUser;
import com.example.warehouse.sys.pojo.param.AddNewRoleParam;
import com.example.warehouse.sys.pojo.param.SysRoleStandardParam;
import com.example.warehouse.sys.pojo.vo.SysRoleListItemVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;


@Transactional
public interface IRoleService {


    /**
     * 添加新角色
     *
     * @param addNewRoleParam 添加新角色参数
     */
    void addNew(AddNewRoleParam addNewRoleParam);

    /**
     * 删除角色通过id
     *
     * @param id id
     */
    void deleteById(Long id);

    /**
     * 修改角色参数
     *
     * @param syRoleStandardParam 系统角色标准参数
     */
    void updateById(Long id,SysRoleStandardParam syRoleStandardParam);

    SysRoleListItemVO getRoleById(Long id);

    List<SysRoleListItemVO> list();

    /**
     * 查询角色列表，将使用默认的每页记录数
     *
     * @param pageNum 页码
     * @return 角色列表
     */
    PageData<SysRoleListItemVO> list(Integer pageNum);

    /**
     * 查询角色列表
     *
     * @param pageNum  页码
     * @param pageSize 每页记录数
     * @return 角色列表
     */
    PageData<SysRoleListItemVO> list(Integer pageNum, Integer pageSize);

    /**
     * 查询所有数据
     *
     */
    List<SysRole> selectAll();
}
